草庐IT

php - 在PHP中模拟友元类

全部标签

unit-testing - 我可以使用嵌套界面模拟库代码吗?

这个问题在这里已经有了答案:HowcanImockmultipletypeswhenthesignatureofaconcretemethodreferstoanotherconcretetype,notitsinterface?(1个回答)关闭3年前。我正在尝试在我的go代码中的测试中模拟第3方库。但是我无法编译我所采用的方法。如果我想模拟T2.M2的结果,有什么方法可以使它工作,或者我可以采用另一种方法吗?packagemainimport("fmt")//TwotypesinalibrarythatIdonthavecontrolovertypeT1struct{}func(T1

testing - 是否可以使用 Gomega 模拟示例测试?

我有一些go测试,我想更新它们以使用Ginkgo进行BDD样式测试。问题是,服务器使用stdout和stderr进行日志记录,并且许多测试使用Go内置的“示例”测试框架,如下所示:import("fmt")funcExampleConsoleLog(){fmt.Printf("Testing%d,%d,%d:%s\n",1,2,3,"mikecheck")//Output://Testing1,2,3:mikecheck}我想使用Ginkgo和Gomega来断言这些被打印到标准输出,但没有内置的匹配器可以告诉我这样做。Gomega确实提供了一个gbytes包,但是没有关于如何将gbyt

unit-testing - 我如何在测试中模拟 Go 函数?

我在StackOverflow上阅读了一些关于如何模拟time.Now()等函数的问题。解决方案似乎是编写一个实现特定接口(interface)的结构,然后在测试中传入该模拟。有更好的方法吗?由于在Golang中没有足够好的依赖注入(inject)容器实现,我不想手动传递结构,或者创建一个内部只有这样的结构:func(sMyStruct)Now(){returntime.Now()}因为,首先,我无法测试这个函数。当你处理其中没有变量的一行时,它可能什么都不是,但我有一个连接到TCP端口的函数。做这样的事情需要我为它使用的所有东西创建适配器(例如net.Dial()、time.Now(

database - Golang 代码的运行速度真的比 PHP 中的相同代码慢

Golang新手,昨天我开始使用Golang并编写了一些实际用PHP编写的代码。我只是想看看性能上的差异。我在PHP中做完全相同的事情,响应在http请求中完全相同,但Golang的执行速度非常慢,即使在编译之后也是如此。我试图了解我在Golang中使用的哪些东西不应该使用,以及我如何才能提高这段代码的性能。我知道遍历映射很慢,但是PHP使用散列映射来实现多维数组。我可以保证我使用的sql查询是从PHP粘贴的完全相同的副本,机器相同,并且两个代码中的循环数相同。packagemainimport("database/sql""encoding/json""fmt"_"github.co

设置表格以重定向到提交时的当前页面(SilverStripe/PHP)

我为SilverStripe站点有一个注册表单,该网站处理服务器端上的所有内容。最初,它只会在主页上,所以我工作的设置很好。但是随后的需求发生了变化,也需要出现在子页面上的表格。除了我为什么设置的内容,表格总是提交到主页外,一切仍然有效action范围。最初,action参数为“/家庭/提交”。我将其更改为接受一个变量,该变量返回当前页面URL并通过制作称为称为的函数来附加“/提交”Link(请参阅下面的代码)。这似乎有效,并将正确的URL放入action范围。但是,当您点击“提交”按钮时,该表格仍将用户发送回主页,这不是我想要的。我希望他们留在表单上的当前页面上(无论是主页还是任何子页面)。

math - golang 中模拟钟形曲线上的值

我的数学有点初级,所以我提前为任何假设道歉。我想获取存在于模拟钟形曲线上的值。我不想实际创建钟形曲线或绘制钟形曲线,我只想使用一个函数,给定输入值可以告诉我假设的钟形曲线上相应的Y轴值。这里是完整的问题陈述:我正在生成介于0.0和1.0之间的浮点值。0.50代表钟形曲线上的2.0,也就是最大值。0.50的值开始在此钟形曲线上下降,因此例如0.40和0.60是相同的,可能类似于1.8。为这个例子任意选择了1.8,我想知道如何调整这个“梯度”。现在我正在做一个非常粗略的实现,例如,对于任何>0.40和关于如何在Go中实现这一点的任何想法 最佳答案

unit-testing - 如何在向 API 发送 http 请求时进行模拟

我已经使用go-gin在Go中实现了一个ReSTAPI,我正在尝试测试一个如下所示的处理函数funceditNameHandler(c*gin.Context){//makeaReSTcalltoanotherservercallToAnotherServer()c.Status(200)}我想模拟callToAnotherServer方法,以便我的测试用例根本不调用第3方服务器。我的测试用例看起来像funcTestSeriveIdStatusRestorePatch(t*testing.T){//Requestbodysend:=strings.NewReader(`{"name":

go - curl php为golang api返回状态代码0

我已经在golang中创建了一个getListapi。现在我正在尝试使用php-curl从我的php函数调用getListapi。我正在从我的php函数发出数千个请求。然而,大约15k请求得到了正确处理,但在15k-20k(数量不同)和更多请求之后,CurlCURLINFO_HTTP_CODE返回0并且responseis""并且curl_error返回空字符串。curl_errno返回7我的golanggetListapi很简单。它从数据库中获取数据并将其返回。它不包含任何goroutines。我不明白为什么在15k-20k请求之后它开始给我空响应。不知道是curl-php问题还是g

unit-testing - 如何在 Golang 中正确模拟具有成员函数的结构?

我有两个结构:FunctionalityClient和TestClient,它们都实现了Interface。我有一个Interface类型的全局变量Client。我将实际客户端或模拟客户端分配给Client,具体取决于它是测试还是正常运行。Interface有一个方法Request我想在测试中模拟它。也就是说,我想:记录传递给函数的参数是什么从函数返回一些任意定义的返回值所以结构看起来像这样:typeTestClientstruct{recordedArgs[]interface{}returnValues[]interface{}}func(c*TestClient)Request(

php - 无法使用 Golang 连接到 MSSQL 2014(未在 MSSQL 上打开静态端口)

我正在尝试将我的Golang应用程序连接到MSSQL2014。我已经成功使用-https://github.com/denisenkom/go-mssqldb为此,我只在我的MSSQL上启用了一个静态端口,一切都很好,我能够获取数据。但我想要实现的是连接到MSSQL而无需在MSSQL上打开静态端口,因为我的PHP应用程序已经使用PDO完成了此操作。我也尝试使用-https://github.com/minus5/gofreetds但无法在Windows上安装FreeTDS。但即便如此,我还是看到某个地方可以为MSSQL设置一个端口,所以我停止了。我遇到的另一个golangpkg是-ht